a = 100  # 全局变量


def calc(x, y):
    return x + y


print(a)    # 100
print(calc(10, 20))  # 30
print("-" * 30)


def calc2(x, y):
    a = 200     # 局部变量，局部变量的名称 和 全局变量的名称相同
    return a + x + y    # 这里的a是局部变量还是全局变量？      当局部变量和全局变量名相同时，局部变量优先级最高。


print(calc2(10, 20))    # 230   a是局部
print(a)    # 100      a是全局
print("-" * 30)


def calc3(x, y):
    global s    # s是在函数中定义的变量，但是使用了global关键字声明了，这个变量s就变成了全局变量
    s = 300     # 声明和赋值，必须是分开执行！
    return x + y + s


print(calc3(10, 20))    # 330
print(s)        # 300      s是全局
print("-" * 30)


